#include "Partie.h"
#include <stdlib.h>
#include <stdio.h>


/* Procédure qui va permettre l'initialisation de la structure partie.
 * Elle prend en paramètre un pointeur sur la structure partie. */
void init_partie (Spartie* partie)
{
	(*partie).nbvie=1;
	(*partie).argent=10;
	(*partie).score=0;
	(*partie).niveau=1;
}

/* Cette fonction est un accesseur, elle va permettre d'acceder au nombre
 * de vies restantes au joueur.
 * Elle prend en paramètre un pointeur sur une structure partie.
 * Elle renvoie un entier correspondant au nombre de vie restantes. */
int get_nbvie (const Spartie* partie)
{
	return ((*partie).nbvie);
}

/* Cette fonction est un accesseur, elle va permettre d'acceder au montant
 * encore disponible pour le joueur.
 * Elle prend en paramètre un pointeur sur une structure partie.
 * Elle renvoie un entier correspondant au montant encore dépensable par le joueur. */
int get_argent (const Spartie* partie)
{
	return ((*partie).argent);
}

/* Cette fonction est un accesseur, elle va permettre d'acceder au score
 * du joueur.
 * Elle prend en paramètre un pointeur sur une structure partie.
 * Elle renvoie un entier correspondant au score du joueur. */
int get_score (const Spartie* partie)
{
	return ((*partie).score);
}

/* Cette fonction est un accesseur, elle va permettre d'acceder au niveau
 * en cours du joueur.
 * Elle prend en paramètre un pointeur sur une structure partie.
 * Elle renvoie un entier correspondant au niveau actuel du joueur. */
int get_niveau (const Spartie* partie)
{
	return ((*partie).niveau);
}

/* Cette fonction est un mutateur, elle va permettre de modifier le nombre
 * de vies restantes au joueur.
 * Elle prend en paramètre un pointeur sur une structure partie. 
 * Attention , elle ne fais que diminuer d'1 le nombre de vies ! */
void set_nbvie (Spartie* partie)
{
	(*partie).nbvie--;
}

/* Cette procédure est un mutateur, elle va permettre de modifier l'argent
 * restant au joueur.
 * Elle prend en paramètre un pointeur sur une structure partie et un cout.
 * ATTENTION, on a ici présenté les choses sous forme de cout en imaginant
 * les dépenses du joueur. Mais il arrivera que ce dernier gagne de l'argent
 * (en tuant des bebetes). Le cout sera donc dans ce cas négatif.
 * ATTENTION ! Il faudra penser à vérifier qu'on a assez d'argent pour acheter la tour en question car ici rien
 * n'empeche de passer en négatif ! */
void set_argent (Spartie* partie, int cout)
{
	(*partie).argent=((*partie).argent-cout);
}

/* Cette procédure est un mutateur, elle va permettre de modifier le score du joueur.
 * Elle prend en parametre un pointeur sur une structure partie et un nombre
 * de point à ajouter au score. */
void set_score (Spartie* partie, int points)
{
	(*partie).score=(*partie).score+points;
}

/* Cette procédure est un mutateur, elle va permettre de modifier le niveau
 * en cours du joueur.
 * Elle prend en paramètre un pointeur sur une structure partie.
 * Attention, elle ne fait qu'incrémenter le niveau !! On ne pourra donc pas
 * sauter de niveau. */
void set_niveau (Spartie* partie)
{
	(*partie).niveau++;
}

